{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "312baf54",
   "metadata": {},
   "outputs": [],
   "source": [
    "# importing libaries\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "aabdfc58",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the GRU model\n",
    "class GRU(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, output_size):\n",
    "        super(GRU, self).__init__()\n",
    "\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        self.gru = nn.GRU(input_size, hidden_size, batch_first=True)\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x, hidden):\n",
    "        output, hidden = self.gru(x, hidden)\n",
    "        output = self.fc(output)\n",
    "        return output, hidden"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e0e08805",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Toy problem data\n",
    "input_size = 256  # number of columns in a dataset\n",
    "hidden_size = 32  # number of neurons\n",
    "output_size = 256  \n",
    "sequence_length = 160  # number of sequences/ number of rows\n",
    "batch_size = 1\n",
    "num_epochs = 2000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "18551192",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Thu Jul 20 15:02:48 2023',\n",
       " '__version__': '1.0',\n",
       " '__globals__': [],\n",
       " 'h': array([[0.03949907, 0.03945555, 0.03968762, ..., 0.04081577, 0.04034067,\n",
       "         0.03995187],\n",
       "        [0.03949522, 0.03972834, 0.04007071, ..., 0.0406224 , 0.0405568 ,\n",
       "         0.04021852],\n",
       "        [0.03980837, 0.03966293, 0.04008707, ..., 0.04077249, 0.04050591,\n",
       "         0.04019281],\n",
       "        ...,\n",
       "        [0.04915863, 0.04935256, 0.04961976, ..., 0.04917885, 0.04899574,\n",
       "         0.04881741],\n",
       "        [0.04904458, 0.04916197, 0.04943338, ..., 0.04902097, 0.04897786,\n",
       "         0.04875013],\n",
       "        [0.04913692, 0.04932824, 0.04941899, ..., 0.04888785, 0.0488357 ,\n",
       "         0.04855312]])}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load the .mat file\n",
    "v_data = scipy.io.loadmat('v.mat')\n",
    "h_data = scipy.io.loadmat('h.mat')\n",
    "x_data = scipy.io.loadmat('x.mat')\n",
    "h_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1d818fb1",
   "metadata": {},
   "outputs": [],
   "source": [
    "x = x_data['X']\n",
    "u = h_data['h']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "61eddbd2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch._C.Generator at 0x7f999c04f790>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e95482d1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (256,)\n",
      "input data shape (160, 256)\n",
      "Target data shape (160, 256)\n"
     ]
    }
   ],
   "source": [
    "input_data = u[0:160,:]\n",
    "target_data = u[1:161, :]\n",
    "\n",
    "test_data = u[160, :]\n",
    "#test_target = u[161:201, :]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "#print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "45115215",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input tensor shape torch.Size([1, 160, 256])\n",
      "Target tensor shape torch.Size([1, 160, 256])\n"
     ]
    }
   ],
   "source": [
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3692033e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data).view(batch_size, 1, input_size).float()\n",
    "#test_target_tensor = torch.tensor(test_target).view(batch_size, 40, output_size).float()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d0b8ccbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/2000, Loss: 0.0002715492737480\n",
      "Epoch: 20/2000, Loss: 0.0000541550107300\n",
      "Epoch: 30/2000, Loss: 0.0000373365910491\n",
      "Epoch: 40/2000, Loss: 0.0000193605046661\n",
      "Epoch: 50/2000, Loss: 0.0000143170163938\n",
      "Epoch: 60/2000, Loss: 0.0000128426781885\n",
      "Epoch: 70/2000, Loss: 0.0000106403185782\n",
      "Epoch: 80/2000, Loss: 0.0000077992681327\n",
      "Epoch: 90/2000, Loss: 0.0000051602892199\n",
      "Epoch: 100/2000, Loss: 0.0000024508149181\n",
      "Epoch: 110/2000, Loss: 0.0000023580082598\n",
      "Epoch: 120/2000, Loss: 0.0000023575157684\n",
      "Epoch: 130/2000, Loss: 0.0000023575157684\n",
      "Epoch: 140/2000, Loss: 0.0000023575157684\n",
      "Epoch: 150/2000, Loss: 0.0000023575157684\n",
      "Epoch: 160/2000, Loss: 0.0000023575157684\n",
      "Epoch: 170/2000, Loss: 0.0000023575157684\n",
      "Epoch: 180/2000, Loss: 0.0000023575157684\n",
      "Epoch: 190/2000, Loss: 0.0000023575157684\n",
      "Epoch: 200/2000, Loss: 0.0000023575157684\n",
      "Epoch: 210/2000, Loss: 0.0000023575157684\n",
      "Epoch: 220/2000, Loss: 0.0000023575157684\n",
      "Epoch: 230/2000, Loss: 0.0000023575157684\n",
      "Epoch: 240/2000, Loss: 0.0000023575157684\n",
      "Epoch: 250/2000, Loss: 0.0000023575157684\n",
      "Epoch: 260/2000, Loss: 0.0000023575157684\n",
      "Epoch: 270/2000, Loss: 0.0000023575157684\n",
      "Epoch: 280/2000, Loss: 0.0000023575157684\n",
      "Epoch: 290/2000, Loss: 0.0000023575157684\n",
      "Epoch: 300/2000, Loss: 0.0000023575157684\n",
      "Epoch: 310/2000, Loss: 0.0000023575157684\n",
      "Epoch: 320/2000, Loss: 0.0000023575157684\n",
      "Epoch: 330/2000, Loss: 0.0000023575157684\n",
      "Epoch: 340/2000, Loss: 0.0000023575157684\n",
      "Epoch: 350/2000, Loss: 0.0000023575157684\n",
      "Epoch: 360/2000, Loss: 0.0000023575157684\n",
      "Epoch: 370/2000, Loss: 0.0000023575157684\n",
      "Epoch: 380/2000, Loss: 0.0000023575157684\n",
      "Epoch: 390/2000, Loss: 0.0000023575157684\n",
      "Epoch: 400/2000, Loss: 0.0000023575157684\n",
      "Epoch: 410/2000, Loss: 0.0000023575157684\n",
      "Epoch: 420/2000, Loss: 0.0000023575157684\n",
      "Epoch: 430/2000, Loss: 0.0000023575157684\n",
      "Epoch: 440/2000, Loss: 0.0000023575157684\n",
      "Epoch: 450/2000, Loss: 0.0000023575157684\n",
      "Epoch: 460/2000, Loss: 0.0000023575157684\n",
      "Epoch: 470/2000, Loss: 0.0000023575157684\n",
      "Epoch: 480/2000, Loss: 0.0000023575157684\n",
      "Epoch: 490/2000, Loss: 0.0000023575157684\n",
      "Epoch: 500/2000, Loss: 0.0000023575157684\n",
      "Epoch: 510/2000, Loss: 0.0000023575157684\n",
      "Epoch: 520/2000, Loss: 0.0000023575157684\n",
      "Epoch: 530/2000, Loss: 0.0000023575157684\n",
      "Epoch: 540/2000, Loss: 0.0000023575157684\n",
      "Epoch: 550/2000, Loss: 0.0000023575157684\n",
      "Epoch: 560/2000, Loss: 0.0000023575157684\n",
      "Epoch: 570/2000, Loss: 0.0000023575157684\n",
      "Epoch: 580/2000, Loss: 0.0000023575157684\n",
      "Epoch: 590/2000, Loss: 0.0000023575157684\n",
      "Epoch: 600/2000, Loss: 0.0000023575157684\n",
      "Epoch: 610/2000, Loss: 0.0000023575157684\n",
      "Epoch: 620/2000, Loss: 0.0000023575157684\n",
      "Epoch: 630/2000, Loss: 0.0000023575157684\n",
      "Epoch: 640/2000, Loss: 0.0000023575157684\n",
      "Epoch: 650/2000, Loss: 0.0000023575157684\n",
      "Epoch: 660/2000, Loss: 0.0000023575157684\n",
      "Epoch: 670/2000, Loss: 0.0000023575157684\n",
      "Epoch: 680/2000, Loss: 0.0000023575157684\n",
      "Epoch: 690/2000, Loss: 0.0000023575157684\n",
      "Epoch: 700/2000, Loss: 0.0000023575157684\n",
      "Epoch: 710/2000, Loss: 0.0000023575157684\n",
      "Epoch: 720/2000, Loss: 0.0000023575157684\n",
      "Epoch: 730/2000, Loss: 0.0000023575157684\n",
      "Epoch: 740/2000, Loss: 0.0000023575157684\n",
      "Epoch: 750/2000, Loss: 0.0000023575157684\n",
      "Epoch: 760/2000, Loss: 0.0000023575157684\n",
      "Epoch: 770/2000, Loss: 0.0000023575157684\n",
      "Epoch: 780/2000, Loss: 0.0000023575157684\n",
      "Epoch: 790/2000, Loss: 0.0000023575157684\n",
      "Epoch: 800/2000, Loss: 0.0000023575157684\n",
      "Epoch: 810/2000, Loss: 0.0000023575157684\n",
      "Epoch: 820/2000, Loss: 0.0000023575157684\n",
      "Epoch: 830/2000, Loss: 0.0000023575157684\n",
      "Epoch: 840/2000, Loss: 0.0000023575157684\n",
      "Epoch: 850/2000, Loss: 0.0000023575157684\n",
      "Epoch: 860/2000, Loss: 0.0000023575157684\n",
      "Epoch: 870/2000, Loss: 0.0000023575157684\n",
      "Epoch: 880/2000, Loss: 0.0000023575157684\n",
      "Epoch: 890/2000, Loss: 0.0000023575157684\n",
      "Epoch: 900/2000, Loss: 0.0000023575157684\n",
      "Epoch: 910/2000, Loss: 0.0000023575157684\n",
      "Epoch: 920/2000, Loss: 0.0000023575157684\n",
      "Epoch: 930/2000, Loss: 0.0000023575157684\n",
      "Epoch: 940/2000, Loss: 0.0000023575157684\n",
      "Epoch: 950/2000, Loss: 0.0000023575157684\n",
      "Epoch: 960/2000, Loss: 0.0000023575157684\n",
      "Epoch: 970/2000, Loss: 0.0000023575157684\n",
      "Epoch: 980/2000, Loss: 0.0000023575157684\n",
      "Epoch: 990/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1000/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1010/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1020/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1030/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1040/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1050/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1060/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1070/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1080/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1090/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1100/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1110/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1120/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1130/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1140/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1150/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1160/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1170/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1180/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1190/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1200/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1210/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1220/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1230/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1240/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1250/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1260/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1270/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1280/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1290/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1300/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1310/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1320/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1330/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1340/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1350/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1360/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1370/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1380/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1390/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1400/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1410/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1420/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1430/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1440/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1450/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1460/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1470/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1480/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1490/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1500/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1510/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1520/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1530/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1540/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1550/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1560/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1570/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1580/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1590/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1600/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1610/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1620/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1630/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1640/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1650/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1660/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1670/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1680/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1690/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1700/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1710/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1720/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1730/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1740/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1750/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1760/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1770/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1780/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1790/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1800/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1810/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1820/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1830/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1840/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1850/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1860/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1870/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1880/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1890/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1900/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1910/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1920/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1930/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1940/2000, Loss: 0.0000023575157684\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1950/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1960/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1970/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1980/2000, Loss: 0.0000023575157684\n",
      "Epoch: 1990/2000, Loss: 0.0000023575157684\n",
      "Epoch: 2000/2000, Loss: 0.0000023575157684\n"
     ]
    }
   ],
   "source": [
    "# # dt=0.25, 0.15\n",
    "gru = GRU(input_size, hidden_size, output_size)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.LBFGS(gru.parameters(), lr=0.01)\n",
    "\n",
    "# # Loss and optimizer\n",
    "# criterion = nn.MSELoss()\n",
    "# optimizer = torch.optim.Adam(lem.parameters(), lr=0.001)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    def closure():\n",
    "        optimizer.zero_grad()\n",
    "        hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "        # Forward pass\n",
    "        output, hidden = gru(input_tensor, hidden)\n",
    "        loss = criterion(output, target_tensor)\n",
    "\n",
    "        loss.backward()\n",
    "        return loss\n",
    "\n",
    "    optimizer.step(closure)\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch + 1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch + 1}/{num_epochs}, Loss: {closure().item():.16f}')\n",
    "\n",
    "   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "592be7b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # Create GRU instance\n",
    "# gru = GRU(input_size, hidden_size, output_size)\n",
    "\n",
    "# # Loss and optimizer\n",
    "# criterion = nn.MSELoss()\n",
    "# optimizer = torch.optim.Adam(gru.parameters(), lr=0.1)\n",
    "\n",
    "# # Training loop\n",
    "# for epoch in range(num_epochs):\n",
    "#     # Set initial hidden state\n",
    "#     hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "#     # Forward pass\n",
    "#     output, hidden = gru(input_tensor, hidden)\n",
    "#     loss = criterion(output, target_tensor)\n",
    "\n",
    "#     # Backward and optimize\n",
    "#     optimizer.zero_grad()\n",
    "#     loss.backward()\n",
    "#     optimizer.step()\n",
    "\n",
    "#     # Print progress\n",
    "#     if (epoch+1) % 10 == 0:\n",
    "#         print(f'Epoch: {epoch+1}/{num_epochs}, Loss: {loss.item():.4f}')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "fe1331ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "torch.Size([1, 40, 256])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 40, 256).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "043049c4",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    prediction, _ = gru(test_tensor, hidden_pred)\n",
    "    prediction = prediction.view(1, 1, 256).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(39):\n",
    "        hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "        prediction, _ = gru(prediction, hidden_pred)\n",
    "        prediction = prediction.view(1, 1, 256).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86c85974",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9f361b56",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 256)\n",
      "(1, 201)\n",
      "(201, 256)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/data/localhome/tkapoor/.local/lib/python3.8/site-packages/numpy/ma/core.py:2820: ComplexWarning: Casting complex values to real discards the imaginary part\n",
      "  _data = np.array(data, dtype=dtype, copy=copy,\n",
      "/usr/local/lib/python3.8/dist-packages/matplotlib/contour.py:1180: ComplexWarning: Casting complex values to real discards the imaginary part\n",
      "  self.levels = np.asarray(levels_arg).astype(np.float64)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('NLS.mat')\n",
    "\n",
    "# Following is the code to plot the data u vs x and t. u is 256*100\n",
    "# matrix. Use first 75 columns for training and 25 for testing :)\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['tt']\n",
    "u1 = mat_data['uu']\n",
    "\n",
    "# Use the loaded variables as needed\n",
    "print(x.shape)\n",
    "print(t.shape)\n",
    "print(u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u1), np.max(u1), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u1.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Schrondinger-Equation')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "7b6a7ced",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(201, 256)\n",
      "(40, 256)\n",
      "Relative Error Test:  1.190246071580527 %\n"
     ]
    }
   ],
   "source": [
    "# true solution\n",
    "h_true = np.abs(u1)\n",
    "h_true = h_true.T\n",
    "print(h_true.shape)\n",
    "\n",
    "# exact\n",
    "u_test_full = h_true[161:201, :]\n",
    "print(u_test_full.shape)\n",
    "\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "# prediction.shape\n",
    "\n",
    "\n",
    "k1 = (prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "prediction_tensor.shape\n",
    "\n",
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "125d34e0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(2.6161, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "### Max error\n",
    "\n",
    "R_abs = torch.max(prediction_tensor-u_test_full)\n",
    "print(R_abs)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7e97cb0b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "37f09dd5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e4c69b17",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "fdaf47fc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: -0.40868409794265137\n"
     ]
    }
   ],
   "source": [
    "### Explained variance score\n",
    "\n",
    "import torch\n",
    "\n",
    "a = prediction_tensor\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a4f4b74d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0.6367, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "### Mean absolute error\n",
    "\n",
    "R_mean = torch.mean(torch.abs(prediction_tensor - u_test_full))\n",
    "print(R_mean)\n",
    "\n",
    "## t= 1.28, 1.5, 1.37\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "04ca2169",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(201, 256)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### snapshots\n",
    "\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "h = np.abs(u)\n",
    "h.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "1b7b57a1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(256, 1)\n",
      "(256, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "# # Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# # Perform the prediction\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "final_time_output = prediction_tensor[-38, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = h[-38, :].reshape(-1, 1)\n",
    "print(final_out.shape)\n",
    "print(final_true.shape)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${|u(x, t)|}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 1.28}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-5, 0, 5])\n",
    "ax.set_yticks([0, 2, 4])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "\n",
    "# Increase font size for x and y axis numbers\n",
    "ax.tick_params(axis='both', which='major', labelsize=24)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('GRU_1.28_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "\n",
    "# Show the plot\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a51774c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(256, 1)\n",
      "(256, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "# # Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# # Perform the prediction\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-3, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = h[-3, :].reshape(-1, 1)\n",
    "print(final_out.shape)\n",
    "print(final_true.shape)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 1.5}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-5, 0, 5])\n",
    "ax.set_yticks([0, 2, 4])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "\n",
    "# Increase font size for x and y axis numbers\n",
    "ax.tick_params(axis='both', which='major', labelsize=24)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('GRU_1.5_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "\n",
    "# Show the plot\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "670228bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "### 80-20 contour plot\n",
    "\n",
    "conc_u = torch.squeeze(input_tensor)\n",
    "\n",
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "t1 = np.linspace(0, 1.5707 , 200)\n",
    "\n",
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-5, 5, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1.57, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='twilight')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$|u(x, t)|$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=1.26449, color='black', linestyle='dotted', linewidth=5)\n",
    "\n",
    "#plt.savefig('Contour_LEM_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_GRU_20.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e8b48c55",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "bff925ca",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(256, 1)\n",
      "(256, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "# # Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# # Perform the prediction\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-23, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = h[-23, :].reshape(-1, 1)\n",
    "print(final_out.shape)\n",
    "print(final_true.shape)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 1.5}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-5, 0, 5])\n",
    "ax.set_yticks([0, 2, 4])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "\n",
    "# Increase font size for x and y axis numbers\n",
    "ax.tick_params(axis='both', which='major', labelsize=24)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "\n",
    "# Show the plot\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4ba80a0f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "12d7d2b2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
